#include <cassert>
#include <cstring>
#include <iostream>
#include <vector>
using namespace std;

class Url{
  string raw_url;
  string scheme;
  string user;
  string host;
  unsigned short port;
  string path;
  vector<string> query_key, query_value;
  string fragment;
  bool has_auth, has_user, has_query, has_frag;
public:
  Url(const string& s);
  void parse(const string& s);
  void to_json(ostream& ost) const;
};

Url::Url(const string& s)
  : raw_url(), scheme(), user(), host(), port(0)
  , path(), query_key(), query_value(), fragment()
  , has_auth(false), has_user(false), has_query(false), has_frag(false)
{
  raw_url = s;
  // TODO
}

void Url::to_json(ostream& ost)const{
  ost << "{\n";
  ost << "  \"raw_url\": \"" << raw_url << "\",\n";
  ost << "  \"scheme\": \"" << scheme << "\",\n";
  if(has_auth){
    // TODO
  }else{
    ost << "  \"authority\": null,\n";
  }
  ost << "  \"path\": \"" << path << "\",\n";
  if(has_query){
    if(query_key.empty()){
      ost << "  \"query\": {},\n";
    }else{
      ost << "  \"query\": {\n";
      for(int i = 0, z = query_key.size(); i < z; ++i){
        // TODO
      }
      ost << "  },\n";
    }
  }else{
    ost << "  \"query\": null,\n";
  }
  ost << "  \"fragment\": " << (has_frag ? '"' + fragment + '"' : "null") << "\n";
  ost << "}\n";
}

int main(){
  for(string s; getline(cin, s);){
    Url u(s);
    u.to_json(cout);
  }
}
